Skip to content

docs: align external-node authoring and operations with current platform - #13

Merged
makseq merged 1 commit into
mainfrom
docs/main-documentation-audit-20260910
Sep 10, 2026
Merged

makseq merged 1 commit into
mainfrom
docs/main-documentation-audit-20260910

Conversation

@makseq

@makseq makseq commented Sep 10, 2026

Copy link
Copy Markdown
Member

The node-authoring documentation still described the old runtime-deadline behavior and treated customer-run containers as the only deployment option. This update aligns all 12 tracked Markdown files with hello-node main at c768c02 and orchestrator's default master at 30b0950a.

It documents the current stop/report window, the distinct limitations of operator cancellation, retained logs and failure-marker diagnostics, registration constraints, and hosted builds. Historical measurements retain their dates and provenance. The fixture README remains unchanged after verification; node.py changes are comments/docstrings only.

Verification:

  • 141 existing conformance tests passed in real Docker containers, including platform source-citation checks.
  • Documented offline examples and missing-credential failure executed; all three golden fixtures match the platform source.
  • Relative links and anchors checked; executable Python syntax tree unchanged; git diff --check clean.
  • Independent factual review completed before publication.

No production execution, real S3 transfer, hosted build or new mutation campaign was run. Companion platform documentation PR: https://github.com/HumanSignal/orchestrator/pull/301.

@makseq
makseq merged commit 5ce2dbc into main Sep 10, 2026
1 check passed
makseq added a commit that referenced this pull request Oct 13, 2026
Brings the branch up to main: the documentation alignment (#13) and the Data
Source input (#14). Three files conflicted; everything else merged by itself
and was read through afterwards.

Conflicts:
- README.md: the opening paragraph. Main's dated verification statement is kept
  word for word; this branch had only bumped a test count in the paragraph main
  replaced, and the counts are refreshed separately from a re-measured run. The
  two search-facts bullets in the list below it are kept.
- docs/AUTHORING.md, "node.py and this skeleton", two places. Main's new
  paragraph about the input check stays, and the sentence under it now counts
  "Three things" because this branch adds a third. That third bullet (the
  report document is inventoried after its upload) is kept, followed by main's
  rewritten paragraph about the `report` port in place of the older one.
- docs/PROTOCOL.md, section 4.4. Main had only dropped the line numbers from a
  citation inside the paragraph "Nothing in the orchestrator ever reads
  result.json", which this branch replaces: the replacement stays, and it
  already cites by file and function name. The background note that opens the
  section is shortened to what is true in main's text: it no longer refers to
  line numbers (main's document has none) or says that every other section is
  measured against the commit the preamble names (the Data Source passages are
  not).

Merged without conflict and checked by reading: CONFORMANCE-BASELINE.md,
conformance/README.md, docs/OPERATIONS.md, docs/README.md, node.py and
tests/test_harness_self.py. The search-facts tests need no change for main's
harness: the new Job parameters have defaults.

Provenance blocks, pinned commits and test counts are left as each side wrote
them; they are refreshed separately from a re-measured run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XQDS15iYfpfCaTY6LoDx9e
makseq added a commit that referenced this pull request Oct 13, 2026
)

An external node may now put an optional `facts` list into result.json —
[{"key": "task", "value": "282139672"}, {"key": "input", "value": "tasks.json"}] —
and the orchestrator records each entry in its search-facts table when it
collects the run (at marker acceptance, on any outcome, under the 1 MiB
ceiling), so the run is found by task:…, input:…, or a bare id.

node.py: one `input` fact per copied input (the envelope's own name); the
orchestrator's rules applied at write time (claim(): key grammar, value ≤512
chars, no control characters or lone surrogates, cap 10,000; skips counted in
summary.facts_not_claimed); the report written on the failure path before the
marker (marker strictly last; a refused upload is retried and never falsely
inventoried — RESULT_UPLOADED); not attempted on the cancel path (a stopping
node that abandons in-flight connections cannot open a new one — one plain
line says so).

Conformance harness: validate_result shape-checks `facts` NON-fatally (facts
are never load-bearing): the orchestrator's rules mirrored constant for
constant — key ^[a-z][a-z0-9_]{0,63}\Z, value str|int non-bool ≤512 free of
control characters and lone surrogates, meta absent or a flat object (≤32 keys
of 1–64 chars, scalar values) — reported as recommendations.

Docs: PROTOCOL.md (the facts key, the flat meta rule, when it is read),
AUTHORING.md ("Make the run findable" + checklist), OPERATIONS.md limits,
README + capability matrix, conformance README, CONFORMANCE-BASELINE counts.

Companion of HumanSignal/orchestrator "feat(external): search facts for
external nodes".

Brought up to date on 2026-10-13, after the orchestrator half (#296) was
deployed: merged with main a9ca5b8 (#13, #14 — the Data Source input);
four statements corrected against the platform as deployed (reserved search
prefixes; no facts after an operator's Cancel of running work; the `input`
fact of a Data Source upload carries the cleaned name; one pointer); and
provenance refreshed from a re-measured run against orchestrator 86461801:
153 tests green with the verbatim citation check (152 + the one tolerated
skip without orchestrator sources), groups 62/67/24, bases 83/45/25,
38 citations / 90 fragments, mutation verifier 12/12. Three sentences that
had gone stale since 2026-09-10 were fixed (registration is under
"Organization"; the setup command no longer says there is no UI; a pointer).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AuqWuKD5dik1RMBRkcpbAj
Claude-Session: https://claude.ai/code/session_01XQDS15iYfpfCaTY6LoDx9e
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant